package com.hvgroup.modules.sanic.service.mapstruct;

import com.hvgroup.modules.dify.service.dto.AppsDto;
import com.hvgroup.modules.sanic.domain.po.LlmApp;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;

import java.util.ArrayList;
import java.util.List;

@Mapper(componentModel = "spring", uses = {}, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface LlmAppMapper {
//
//    default Apps toEntity(AppsDto dto) {
//        if ( dto == null ) {
//            return null;
//        }
//
//        Apps apps = new Apps();
//
//        apps.setId( dto.getId() );
//        apps.setTenantId( dto.getTenantId() );
//        apps.setName( dto.getName() );
//        apps.setMode( dto.getMode() );
//        apps.setIcon( dto.getIcon() );
//        apps.setIconBackground( dto.getIconBackground() );
//        apps.setStatus( dto.getStatus() );
//        apps.setCreatedAt( dto.getCreatedAt() );
//        apps.setUpdatedAt( dto.getUpdatedAt() );
//        apps.setDescription( dto.getDescription() );
//        apps.setIconType( dto.getIconType() );
//        apps.setCreatedBy( dto.getCreatedBy() );
//        apps.setUpdatedBy( dto.getUpdatedBy() );
//        apps.setUseIconAsAnswerIcon( dto.getUseIconAsAnswerIcon() );
//
//        return apps;
//    }

    default AppsDto toAppsDto(LlmApp entity) {
        if (entity == null) {
            return null;
        }
        AppsDto appsDto = new AppsDto();
        appsDto.setId(entity.getAppId());
//        appsDto.setTenantId( entity.getTenantId() );
        appsDto.setName(entity.getName());
        appsDto.setMode(entity.getMode());
        appsDto.setIcon( entity.getIcon() );
//        appsDto.setIconBackground( entity.getIconBackground() );
//        appsDto.setStatus( entity.getStatus() );
        appsDto.setCreatedAt(entity.getCreateTime());
        appsDto.setUpdatedAt(entity.getUpdateTime());
        appsDto.setDescription(entity.getDescription());
//        appsDto.setIconType( entity.getIconType() );
        appsDto.setCreatedBy(entity.getCreateBy());
        appsDto.setUpdatedBy(entity.getUpdateBy());
//        appsDto.setUseIconAsAnswerIcon( entity.getUseIconAsAnswerIcon() );

        return appsDto;
    }

//    default List<Apps> toEntity(List<AppsDto> dtoList) {
//        if ( dtoList == null ) {
//            return null;
//        }
//
//        List<Apps> list = new ArrayList<Apps>( dtoList.size() );
//        for ( AppsDto appsDto : dtoList ) {
//            list.add( toEntity( appsDto ) );
//        }
//
//        return list;
//    }

    default List<AppsDto> toAppsDto(List<LlmApp> entityList) {
        if (entityList == null) {
            return null;
        }

        List<AppsDto> list = new ArrayList<>(entityList.size());
        for (LlmApp apps : entityList) {
            list.add(toAppsDto(apps));
        }

        return list;
    }

}
